1、前言
在前面我们介绍了Kong的一些内容,包括Key-auth、basic 等插件, 想了解的请移步《企业级API网关Kong系列》
本章我们继续其插件之旅,Limit 限流插件的使用。
2、Rate Limiting
限流的插件使用起来非常简单,它可以分别在Service 、 Route、Consumer上开启,下面我们一一来介绍下。
2.1 Service 上开启
$ curl -X POST http://kong:8001/services/{service}/plugins \
--data "name=rate-limiting"
--data "config.second=5" \
--data "config.hour=10000"
2.2 Route 上开启
$ curl -X POST http://kong:8001/routes/{route}/plugins \
--data "name=rate-limiting"
--data "config.second=5" \
--data "config.hour=10000"
2.3 Consumer 上开启
$ curl -X POST http://kong:8001/consumers/{consumer}/plugins \
--data "name=rate-limiting-advanced" \
--data "config.second=5" \
--data "config.hour=10000"
3 参数列表
参数 | 描述 |
name | 在这种情况下,要使用的插件的名称 rate-limiting-advanced |
service_id | 此插件将定位的服务的ID。 |
route_id | 此插件将定位的路由的ID。 |
enabled 默认值: true | 是否将应用此插件。 |
consumer_id | 此插件将定位的Consumer的id。 |
config.limit | 每个窗口应用一个以上的请求 |
config.window_size | 再应用一个窗口大小(以秒为单位定义) |
config.identifier 默认值: consumer | 如何定义速率限制键。可以ip,credential,consumer,service,或header。 |
config.header_name 可选 | <td标头名称,在header定义标识符时用作速率限制键。>|
config.dictionary_name 默认值: kong_rate_limiting_counters | 共享字典,其中计数器将存储到下一个同步周期 |
config.sync_rate | 将计数器数据同步到中央数据存储的频率。值为0会导致同步行为; 值-1完全忽略同步行为,仅在节点内存中存储计数器。大于0的值将在很多秒内同步计数器。 |
config.namespace 可选的 默认值: 随机字符串 | 用于此插件实例的速率限制库名称空间。计数器数据和同步配置在命名空间中共享。 |
config.strategy 默认值: cluster | 要使用的同步策略; cluster并redis得到支持 |
config.redis.host 可选 | redis定义策略时用于Redis连接的主机 |
config.redis.port 可选 | redis定义策略时用于Redis连接的端口 |
config.redis.timeout 可选的 默认值: 2000 | redis定义策略时用于Redis连接的连接超时(以毫秒为单位) |
config.redis.password 可选 | redis定义策略时用于Redis连接的密码。如果未定义,则不会向Redis发送AUTH命令。 |
config.redis.database 可选的 默认值: 0 | redis定义策略时用于Redis连接的数据库 |
config.redis.sentinel_master 可选 | redis定义策略时,Sentinel master用于Redis连接。定义此值意味着使用Redis Sentinel。 |
config.redis.sentinel_role 可选 | redis定义策略时用于Redis连接的Sentinel角色。定义此值意味着使用Redis Sentinel。 |
config.redis.sentinel_addresses可选 | redis定义策略时,Sentinel地址用于Redis连接。定义此值意味着使用Redis Sentinel。 |
config.redis.cluster_addresses 可选 | redis定义策略时用于Redis连接的群集地址。定义此值意味着使 用Redis群集。 |
config.window_type 默认值: sliding | 这将时间窗口设置为sliding或fixed |
注意 : 如果使用cluster策略、则忽略Redis配置。
将Cluster和postgres做kong 集群数据存储时, 需要 PostgresSQL9.5+。
想了解更多关于Kong网关的请移步 >>>>> 企业级API网关Kong
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。